Bandwidth demand on telecommunications networks is increasing. In response, the International Telecommunications Union (ITU) has standardized the Optical Transport Network (OTN), which is a dense wavelength division multiplexing (DWDM) network. The rates and formats of OTN constructs such as optical channel transport unit (OTU)k and optical channel data unit (ODU)k are defined in ITU-T G.709.
ITU-T G.709 has a defined number of ODUk frames; k=0, 1, 2, 2e, 3 and 4, in order of increasing rates. A lower rate ODUj can be multiplexed into a higher rate ODUk. Multi-level multiplexing is allowed. For example, eight ODU0 streams may be multiplexed into an ODU2, which may, in turn, be multiplexed along with nine other ODU2 streams, into an ODU4. FIG. 1A and FIG. 1B show an OTN terminating device that supports two levels of multiplexing.
The multiplexing of Low Order (LO) ODUj/ODUflex clients into a High Order (HO) ODUk carrier is performed in two logical steps, Rate Justification and Multiplexing. Rate Justification encodes the rate of each LO ODUj in relation to an optical channel data tributary unit (ODTU) by either AMP (Asynchronous Mapping Procedure) or GMP (Generic Mapping Procedure) as defined in ITU-T G.709. The ODTU streams are phase locked to HO ODUk carrier. Then, the resultant ODTUs are multiplexed into the HO Server Multi-frame of the HO OPUk. An example of multiplexing an ODU0, an ODU1 and an ODUflex.5 is shown in FIG. 2.
The individual LO channels are not frame aligned with the HO channel frame. Each LO channel is mapped in an ODTU which is a rate justified structure that fills the Tributary Slots allotted to the LO channel within the HO ODUk. The first byte of each LO ODTU is aligned with the HO ODUk Tributary Multiframe. Bytes of an ODTU are grouped into M-byte words, where M is the number of TribSlots allocated to the ODTU. For identifying Data vs Stuff words in GMP, words are numbered using an index j. The first word is given j=1.
In a typical 100 Gbps bandwidth device, the datapath width (W) is typically W=32 to W=64 bytes. W is expected to grow for 400 Gbps and 1 Tbps bandwidth devices of the future. The number of Tributary Slots (M) allocated to a LO ODUk in the HO carrier varies. Some ITU-T G.709 values of M are as follows: ODU1: M=2; ODU2: M=8; ODU3: M=32; ODU4: M=80; ODUflex: M=Variable.
FIGS. 3A and 3B show an ODU2 multiframe with three LO channels, an ODU0, ODU1 and ODUflex5. The Tributary Slots in the HO are split into a repeating sequence of LO TS allocated based on rate. ODU0=1 TS (Channel A), ODU1=2 TS (Channel B), and ODUflex5=5 TS (Channel C). The label within each byte shows the channel and the GMP byte count for the first word of each row.
When multiplexing, the ODU overhead is added to the OPU (columns 17-3824) which is formed from the Optical Channel Data Transport Units (ODTU). An ODTU2.1 is shown in FIG. 4 (channel A), ODTU12 in FIG. 5 (channel B) and ODTU2.5 in FIG. 6 (channel C).
LO clients can be added or removed from a HO carrier without affecting any other LO clients. In addition, in ITU-T G.7044, a LO ODUflex Generic Framing Procedure (GFP) channel can be hitlessly resized (up or down) without affecting any other LO clients.
GMP is a generic mapping procedure defined in ITU-T G.709. GMP is used to match the rate of the LO ODUj to the ODTU payload area. The ODTU bytes are then mapped into the OPUk Tributary Slots. Justification Control bytes in the GMP overhead specify the number of M-byte words in each ODTU frame that carry LO ODUj bytes (known as Data Words). The remaining words in the ODTU frame are filled with Stuff Words. The distribution of Data and Stuff words are given by Equations 1 and 2 below.
In Equation 1 and Equation 2, Cm is the number of client Data Words mapped into the payload area of the Server allocated to that client. Each M-byte word is indexed by j, where j=1 to Pm,server M-byte words. Pm,server is the number of words in the ODTU frame. A word is a client Data Word when Equation 1 is satisfied, and is a Stuff Word when Equation 2 is satisfied. An example of how Data and Stuff words may be distributed in an ODTU frame is shown in FIG. 7.
                                          client data (            D            ): if                      ⁢                      (                          j              ×                              C                m                                      )                    ⁢                                          ⁢          mod          ⁢                                          ⁢                      P                          m              ,              server                                      <                  C          m                                    Equation        ⁢                                  ⁢        1                                                      stuff (            S            ): if                    ⁢                                          ⁢                      (                          j              ×                              C                m                                      )                    ⁢          mod          ⁢                                          ⁢                      P                          m              .              server                                      ≥                              C            m                    .                                    Equation        ⁢                                  ⁢        2            
A known implementation of a multiplexer follows the G.709 definitions directly and is shown in FIGS. 8A and 8B. A set of LO ODU clients are delivered over a W-byte datapath in a TDM (time division multiplex) fashion. The incoming data of each LO ODUj is stored in separate FIFOs, shown in FIGS. 8A and 8B as FIFO 1 to FIFO 78. Each of the LO ODU clients is multiplexed into a HO ODUk carrier of M Tributary Slots. Each LO ODU client is allocated M of the T Tributary Slots in the HO Server MF, based on its nominal rate. The LO channel data is rate justified using the Generic Mapping Procedure. The number and position of the justification stuff bytes is calculated with a channelized Time Division Multiplexing GMP engine. The resultant number of data bytes needed and justification pattern is used by the Expander block to expand the data by inserting stuff bytes. The justified data, with width of W bytes, is stored in a separate justified FIFO per LO channel.
At the HO Server side, the TDM databus may carry words from multiple HO ODUk carriers. Each W-byte word contains a certain number of bytes from a set of LO ODU client bytes associated with that HO ODUk carrier. The bytes required are read from the corresponding LO justified FIFOs and then inserted into the correct byte locations of the HO carrier word using the W:1 multiplexers. This implementation is very gate intensive as most elements replicated by the number of potential LO ODU clients. For example, an ODU4 or a set of ten ODU2s can support up to 80 LO ODU0 clients.
As line rates go up, the container sizes increase, but the granularity remains the same. A system can now have ODU4 carriers each with 80 Tributary Slots which results in large multiplexing structures with a huge number of potential combinations. The structure requires a large set of multiplexers which need to be configured based on the datapath width (W) and the number of HO Tributary Slots. Further complicating the configuration is the HO Tributary Slot number may not be divisible by the datapath width. The large number of LO TribSlots within the HO may mean that many cycles of the datapath are required before a single HO cycle is ready, resulting in multiple stages of storage.
An implementation should also be flexible to add or remove channels, or do ODUflex hitless resizing. This requires that the justification patterns can be changed on the fly and coordinated between the justification and multiplexing stages. The data that is in FIFOs cannot be corrupted between justification contexts, and more importantly information pertaining to the context must pass through FIFOs.
It is, therefore, desirable to provide an improved method and apparatus for multiplexing low order ODUj clients to a high order ODUk in an OTN.